1

背景

之前写了一个钉钉机器人定时发消息的应用,感觉还有许多可以补充优化的地方,比如可以修改发送的消息内容,也可以启动或者停止定时发送消息。

但是之前是直接用本地node去执行代码,代码执行后无法改变其状态,于是打算用express和nginx来做一个简单的站点去执行操作。

代码逻辑

整个逻辑很简单,一个简单的前端页面,提供表单来发送请求修改发送的消息,服务端使用json文件来保存消息,在需要发送消息的时候读取json消息。

话不多说,直接上代码:

创建服务



const express = require('express');

const handleSendMsg = require('./src/sendMsg');
const doSchedule = require('./src/doSchedule');
const changeText = require('./src/changeText');

const app = express();

app.use(express.static('static'));

app.get('/changeText.json', changeText);

app.get('/sendMsg.json', handleSendMsg);
app.get('/doSchedule.json', doSchedule);


app.listen(3008, () => {
  console.log('Listening on port %d', 3008);
});

处理消息

const logger = require('../myLogger');
const path = require('path');
const fs = require('fs');

module.exports = function(req, res) {
  const query = req.query;
  logger.info(`接收到修改消息的内容为:${JSON.stringify(query)}`);

  const content = JSON.parse(fs.readFileSync(path.join(__dirname, '../config.json')));
  if (query.workOff) {
    content.workOff = query.workOff;
  }
  if (query.workOn) {
    content.workOn = query.workOn;
  }

  fs.writeFileSync(path.join(__dirname, '../config.json'), JSON.stringify(content));

  logger.info(`消息的内容已修改为:${JSON.stringify(content)}`);

  res.json('消息文案已完成修改');
};

部署执行

安装nginx

nginx安装说起来比较简单,但因为是第一次装,还是踩了不少坑, 主要就是关注各个依赖的版本了,这个可以参考网络上的教程nginx安装

部署

进入到项目目录下,启动一个后台进程来执行express。。。

配置nginx

核心代码如下(参考链接):

    upstream mysvr {   
      server 127.0.0.1:7878;  // 需要被代理的服务器
   
    }
    
     server {
    listen 80;
    server_name 127.0.0.1;
    location / {
        proxy_pass http://mysvr;  // nginx代理的服务
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }

nginx 相关命令

启动
[root@localhost ~]# /usr/local/nginx/sbin/nginx
停止/重启
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop(quit、reload)
命令帮助
[root@localhost ~]# /usr/local/nginx/sbin/nginx -h
验证配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

[cenos防火墙设置](https://blog.csdn.net/u011846...


紫日残月
239 声望8 粉丝